// utils/fileUpload.js
const multer = require('multer');
const path = require('path');

// 设置存储引擎
const storage = multer.diskStorage({
    destination: (req, file, cb) => {
        // 定义上传文件的保存目录
        cb(null, 'uploads/');
    },
    filename: (req, file, cb) => {
        // 定义文件名
        const ext = path.extname(file.originalname); // 获取文件扩展名
        cb(null, Date.now() + ext); // 文件名为当前时间戳 + 文件扩展名
    }
});

// 创建上传中间件，限定文件类型为图片
const upload = multer({
    storage: storage,
    limits: { fileSize: 5 * 1024 * 1024 }, // 限制文件大小为5MB
    fileFilter: (req, file, cb) => {
        const fileTypes = /jpeg|jpg|png|gif/;
        const extname = fileTypes.test(path.extname(file.originalname).toLowerCase());
        const mimetype = fileTypes.test(file.mimetype);
        if (extname && mimetype) {
            return cb(null, true);
        } else {
            cb(new Error('只允许上传图片文件'));
        }
    }
}).single('file'); // 只接收单张图片，字段名为 'file'

module.exports = upload;
